<?php

namespace App\Containers\AppSection\Pledge\Models\Properties\Contracts;

use App\Containers\AppSection\File\Models\File;
use App\Ship\Parents\Models\Model;
use Staudenmeir\EloquentJsonRelations\HasJsonRelationships;
use Staudenmeir\EloquentJsonRelations\Relations\BelongsToJson;

/**
 * Право аренды на земельный участок
 *
 * @property int $id Id
 * @property string $address Адрес
 * @property string $number Номер
 * @property string $total_area_type Тип площади ['meter', 'ga']
 * @property string $total_area Общая площадь
 * @property string $land_category Категория земель
 * @property string $permitted_use Разрешенное использование
 * @property string $other_information Иные сведения
 * @property string $rent_type Срок аренды ['year', 'month', 'date', 'infinity']
 * @property string $rent Срок аренды
 * @property string $contract_name Наименование договора
 * @property string $contract_date Договор от
 * @property string $contract_number Номер договора
 * @property string $contract_tenant Арендатор
 * @property string $contract_registered_date Дата регистрации
 * @property string $contract_registered_company Компания регистрации
 * @property string $contract_registered_number Номер регистрации
 *
 * @property File[] $documents Документы
 */
class Lease extends Model
{
    use HasJsonRelationships;

    public $timestamps = false;
    protected $table = 'pledge_property_contract_leases';
    protected $casts = [
        'documents' => 'json',
        'contract_date' => 'date',
        'contract_registered_date' => 'date',
    ];

    protected $fillable = [
        'address',
        'number',
        'total_area_type',
        'total_area',
        'land_category',
        'permitted_use',
        'other_information',
        'rent_type',
        'rent',
        'contract_name',
        'contract_date',
        'contract_number',
        'contract_tenant',
        'contract_registered_date',
        'contract_registered_company',
        'contract_registered_number',
        'documents'
    ];

    /**
     * A resource key to be used in the serialized responses.
     */
    protected string $resourceKey = 'Lease';

    /**
     * Документы
     * @return BelongsToJson Files
     */
    public function documents(): belongsToJson
    {
        return $this->belongsToJson(File::class, 'documents');
    }
}
